package Demo37;

/**
 * 只出现一次的数字
 * https://leetcode.cn/problems/single-number-ii/description/
 * 这个就是用 ret 作为返回值
 * 然后统计次数组中某一个比特位为1 的个数, 如果是 %3 剩 1   那就证明那个数组的这个比特位为1 , 那就修改ret
 */

class Solution {
    public int singleNumber(int[] nums) {
        int ret = 0;
        for(int i = 0; i < 32; i++) {
            int sum = 0;
            for(int j = 0; j < nums.length;j++) {
                sum += ((nums[j] >> i) & 1);
                System.out.println(sum);
            }
            ret |= ((sum % 3) << i);
        }
        return ret;
    }
}
class Demo {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int ret = solution.singleNumber(new int[] {2,2,3,2});
        System.out.println(ret);
    }
}